Data processing systems commonly include peripheral devices that run concurrently with the operation of the data processing system. When several processes that are executing in the data processing system require access to the peripheral device, it is necessary to regulate access to the peripheral device. This is especially true in a data processing system that allows for processes to concurrently execute. One application of a data processing system requiring management of the peripheral device is a data processing system provided with a display adapter such as a graphics adapter. Commonly, processes that are executing in the data processing system provide data to a display adapter to display images and/or text to the user. These processes that are running concurrently on the data processing system must have their access to the display device regulated.
FIG. 1 is a block diagram of a typical digital computer 100 utilizing a display adapter to render images. The computer includes a host computer 105. The host computer includes main processor(s) 110 coupled to a memory 120, input device(s) 130 and output device(s) 140. Main processor(s) 110 may include a single processor or multiple processors. Input device(s) 130 may include a keyboard, mouse, tablet or other type of input devices. Output device(s) 140 may include a text monitor, plotter or other types of output devices. The main processor may also be coupled to output device(s) 150 such as a graphics display through a display adapter 200. The display adapter 200 receives instructions regarding images to be rendered from main processor 110. The display adapter then executes those instructions with display processor(s) 220 coupled to a display memory 230. The display processor(s) then execute(s) those instructions and updates frame buffer(s) 240 based on those instructions. Frame buffer(s) 240 includes data for every pixel to be displayed on the graphics output device. A RAMDAC (random access memory digital-to-analog converter) 250 converts the digital data stored in the frame buffers into RGB signals to be provided to the graphics display 150, thereby rendering the desired image.
FIG. 2 is a block diagram of a host computer 300 utilizing a single domain display adapter 350 for rendering images. In host computer 300, a set of graphics processes 310 being executed by the host computer processor communicate with a display adapter 350 for rendering desired images. These graphics processes typically include processes initiated by two dimensional (2-D) and three dimensional (3-D) software packages that are often executed concurrently. These graphics processes may also include a kernel process initiated by the operating system or a server process initiated by a windowing system.
In the prior art, graphics processes 310 commonly coupled to graphics adapter 350 by a rendering context manager 330 (herein referred to as an RCM) in a serial fashion. In general terms, the RCM provides a mechanism such that each of the graphics processes utilizing the display adapter to render graphics images can do so without having to interface with any of the other graphics processes also utilizing the display adapter. Patent application Ser. No. 07/480,186 filed Feb. 12, 1990, now abandoned entitled "Rendering Context Manager for Display Adapters" discusses utilizing an RCM for communications between a host computer and a display adapter.
In this example, RCM 330 provides communications between graphics processes 310 and display adapter 350 through a single domain 360. A domain is a port for allowing information to pass between the host computer and the display adapter. A more detailed description of domains will be given with reference to FIG. 3 below. In a multitasking environment where multiple graphics processes may be executing simultaneously, the graphics processes must contend for the single pathway to the graphics adapter. This contention is handled by the RCM.
Functions 380 are available for execution in the display adapter processor upon request by graphics processes 310 through RCM 330 and domain 360. The functions include graphics functions, such as rendering a particular type of drawing primitive such as a triangle, performing display adapter housekeeping functions, such as clearing display adapter memory, as well as other types of functions.
FIG. 3 is a block diagram of a host computer 400 utilizing a multiple domain display adapter 450 for rendering images. In host computer 400, a set of graphics processes 410 being executed by the host computer processor communicate with display adapter 450 through RCM 430 and domains 460, 462, 464 and 466. In these communications, the graphics processes request the display adapter processor to execute functions 480, 4827 484 and 486. It is through executing these functions that display adapter 450 renders desired images on a display adapter.
Utilizing multiple domains to provide communications between a host computer and a display adapter is known in the art. Patent application Ser. No. 07/480,183 filed Feb. 12, 1990, now abandoned, entitled "Rendering Context Manager for Display Adapters Supporting Multiple Domains" discusses utilizing multiple domains for communications between a host computer RCM and a display adapter. A domain is a port for providing communications to a peripheral device such as a display adapter. Typically, multiple domains are allocations of addresses for use on a hardware port. These address allocations or domains are used in multitasking environments for concurrent communications between multiple host computer processes and a peripheral device.
In this example, graphics processes 410 are coupled by RCM 430 to domains 460, 462, 464 and 466. Four of the graphics processes may be connected to the graphics adapter at any one time by the RCM. The RCM accomplishes this connection from the graphics processes to the display adapter domains on demand. Since any of the graphics processes may be coupled to any of the domains, a complete set of functions must be available to be executed for each domain. This includes any kernel processes initiated by the operating system.
FIG. 4 is an illustration of a use of the system shown in FIG. 3. In this illustration, four of the graphics processes are coupled to four of the domains. In this example, X Server 412 is coupled to domain 462, DWA 414 is coupled to domain 464, DWA 416 is coupled to domain 460, and DWA 418 is coupled is coupled to domain 468. The X Server is a type of resource server for handling various resources such as windowing features. A DWA (direct window access) is well known prior art process for allowing an application to directly manipulate the hardware of the display adapter without the need for an intervening device driver.
The remaining uncoupled graphics processes 420 are shown not coupled to any of the domains of the graphics adapter. If one of the uncoupled graphics processes wishes to utilize a domain for communications with the graphics adapter, then that unconnected graphic process must wait for one of the connected graphics processes to complete operations. For some processes, the RCM may be instructed to interrupt the communications between another process and the display adapter domain it is coupled to. In either case, the RCM may then couple the unconnected process to the open domain.
FIG. 5 is a block diagram of another host computer 600 utilizing a multiple domain display adapters 650 for rendering images. This example of the prior art is described in greater detail in patent application Ser. No. 07/480,183 filed Feb. 12, 1990, now abandoned, entitled "Rendering Context Manager for Display Adapters Supporting Multiple Domains", also referenced above. In host computer 600, graphics processes 612 and 614, of the set of graphics processes 610 being executed by the host computer processor, communicate with display adapter 650 and domains 660 and 662 when coupled to the display adapter and domains by RCM 630. In these communications, the graphics processes request the display adapter processor to execute functions 680 and 682. It is through executing these functions that display adapter 650 renders desired images on a display adapter.
In this example, X Server 612 and DWA 614 are shown coupled to the display adapter by the RCM. In this example of the prior art, domain 660 is for access to 2-D and resource management functions such as setting up the display adapter for a DWA and whereas second domain 662 is for access to 3-D functions. That is, if a graphics process requests a 3-D function such as a 3-D DWA, then the RCM couples that process to domain 662. If an unconnected graphics process 620 wishes to request a 3D function to be performed, then the unconnected graphics process must wait for DWA 614 to break communications or complete its processes with domain 662. The RCM may then couple the unconnected graphics process to domain 662, thereby allowing the process to request the display adapter to execute the desired 3-D function.
FIG. 6 is an illustration of another use of the system shown in FIG. 5. In this illustration, a DWA process 616 is shown coupled to both the 2-D and 3-D domains. The RCM may allow this to occur if the DWA process needs to utilize both 2-D and 3-D functions.